home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / smaltalk / manchest.lha / MANCHESTER / manchester / 2.2 / StandardSystemViewUpdate.st < prev    next >
Text File  |  1993-07-24  |  2KB  |  90 lines

  1. "    NAME        StandardSystemViewUpdate
  2.     AUTHOR        rmd@cs.man.ac.uk
  3.     FUNCTION St'dSys'View now can be subview 
  4.     ST-VERSIONS    2.2
  5.     PREREQUISITES     
  6.     CONFLICTS    
  7.     DISTRIBUTION      world
  8.     VERSION        1.1
  9.     DATE    22 Jan 1989
  10. SUMMARY    StandardSystemViewUpdate
  11.     fixes up StandardSystemView so that it
  12.    can be used as a subView as well as a topView. This was only half
  13.    implemented in the standard image.(2.2).RMD
  14. "!
  15. 'From Smalltalk-80, Version 2.2 of July 4, 1987 on 14 June 1988 at 2:30:33 pm'!
  16.  
  17.  
  18.  
  19. !StandardSystemView methodsFor: 'clipping box access'!
  20.  
  21. clippingBox
  22.     "Answer the rectangular area to which the receiver is to be clipped."
  23.  
  24.     ^self isTopView
  25.         ifTrue: [self labelDisplayBox]
  26.         ifFalse: [self labelDisplayBox intersect: superView insetDisplayBox]!
  27.  
  28. insetClippingBox
  29.     "Answer the rectangular area inside the labelDisplayBox, clipped to the outer view if necessary"
  30.  
  31.     ^self isTopView
  32.         ifTrue: [self labelDisplayBox inside]
  33.         ifFalse: [self labelDisplayBox inside intersect: superView insetDisplayBox]! !
  34.  
  35.  
  36.  
  37.  
  38. !StandardSystemView methodsFor: 'private'!
  39.  
  40. reverseLabel
  41.     "Reverse the label."
  42.  
  43.     labelText isNil ifFalse: [Display reverse: self
  44. insetClippingBox]! !
  45.  
  46.  
  47.  
  48.  
  49. !StandardSystemView methodsFor: 'displaying'!
  50.  
  51. displayView
  52.     "I just display my label."
  53.     self displayLabel! !
  54.  
  55.  
  56.  
  57.  
  58. !StandardSystemView methodsFor: 'displaying'!
  59.  
  60. displayLabel
  61.     "I display the label of my view."
  62.     | labelDisplayBox |
  63.     labelDisplayBox _ self labelDisplayBox.
  64.     self isCollapsed ifTrue: [^self].
  65.     labelDisplayBox displayOn: Display clippingBox: self clippingBox.
  66.     labelText isNil
  67.         ifFalse:
  68.             [isLabelComplemented _ false.
  69.             labelText
  70.                 displayOn: Display
  71.                 at: (labelDisplayBox center -
  72.                         (labelText boundingBox center -
  73.                             labelText boundingBox topLeft))
  74.                 clippingBox: self insetClippingBox]! !
  75.  
  76.  
  77.  
  78. !Quadrangle methodsFor: 'displaying'!
  79.  
  80. displayOn: aDisplayMedium clippingBox: aClippingBox 
  81.     "Display the border and insideRegion of the receiver, with the  
  82.     quadrangle properly clipped to aClippingBox"
  83.  
  84.     insideColor ~~ nil
  85.         ifTrue: 
  86.             [borderWidth ~~ 0 ifTrue: [aDisplayMedium fill: (self region intersect: aClippingBox)
  87.                     mask: borderColor].
  88.             aDisplayMedium fill: (self inside intersect: aClippingBox)
  89.                  mask: insideColor]! !
  90.